package org.linlinjava.litemall.core.util;

import sun.misc.BASE64Encoder;

import java.io.IOException;
import java.net.URLEncoder;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * @author huangfei
 * @create 2022-01-24 18:58
 */
public class FileUtils {
    /**
     *          * 下载文件时，针对不同浏览器，进行附件名的编码
     *          *
     *          * @param filename
     *          *            下载文件名
     *          * @param agent
     *          *            客户端浏览器
     *          * @return 编码后的下载附件名
     *          * @throws IOException
     *
     */
    public static String encodeDownloadFilename(String filename, String agent) throws IOException {
        if(agent.contains("Firefox")) { // 火狐浏览器
            filename = "=?UTF-8?B?"+ new BASE64Encoder().encode(filename.getBytes("utf-8"))+ "?=";
        }else {// IE及其他浏览器
            filename = URLEncoder.encode(filename, "utf-8");
            filename = filename.replace("+"," ");
        }
        return filename;
    }

    public static String getFileNameWithDate(String namePrefix){
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        return namePrefix+sdf.format(new Date())+ ".xls";
    }
}
